package 传智播客_黑马.java基础.LearnException;

import java.io.FileNotFoundException;

/*
throws关键字,异常处理的第一个方式,交给别人处理
作用:
    当方法内部测出异常的时候,那么我们就必须处理这个异常对象
    可以使用throws关键字处理异常对象,会把异常对象声明抛出给方法的调用者进行处理,最终交给JVM进行处理-->中断处理
使用时:在方法声明时使用
    修饰符 返回值类型 方法名 (参数列表) throws{
        throw new AAAException ("产生原因");
        throw new BBBException ("产生原因");
        throw new CCCException ("产生原因");
    }
    注意:
        1,throws关键字必须写在方法声明处
        2,throws关键字后边声明的异常必须是Exception或者是Exception的子类
        3,方法内部如果抛出了多个异常对象,那么throws后面必须也声明多个异常
            如果抛出的多个异常有父子类关系,那么直接声明父类异常即可
        4,调用了一个声明抛出异常的方法,我们就必须的处理生命的异常
            要么继续使用throws,交给方法的调用者进行处理,最终交给JVM
            要么try catch自己处理异常
 */
public class 声明异常throws {
    public static void main(String[] args) throws FileNotFoundException {
        read("a");
    }
    /*
    定义一个方法,对传递的文件路径进行合法性判断
    如果路径不是"ABCD",那么我们就抛出文件找不到异常,告知方法的调用者
    注意:
        FileNotFoundException 是编译异常,抛出了编译异常,就必须处理这个异常
        可以使用throws继续声明抛出异常对象,让调用者进行处理
     */
    public static void read(String filename) throws FileNotFoundException {
        if(!filename.equals("ABCD")){
            throw new FileNotFoundException("文件未找到");
        }
    }
}
